/*
 * string.h
 *
 *  Created on: 2020.10.12
 *      Author: Administrator
 */

#ifndef STRING_H_
#define STRING_H_
#define MAXLEN 40

typedef struct {
	char ch[MAXLEN];
	int len;
} SString;

void init_string(SString* s);

/**
 * �������鴴����
 */
SString* create_string(char array[], int length);

int is_empty_string(SString* s);

int is_full_string(SString* s);
/**
 * 插入
 * 在串s的pos位置前插入串t
 */
int insert_string(SString* s, int pos, SString* t);
/**
 * 删除
 * 在串s的pos位置删除len个字符
 */
int delete_string(SString* s, int pos, int len);
/**
 * ����t��ֵ���Ƶ���s��
 */
void copy_string(SString* s, SString* t);
/**
 * 比较字符串
 * 若串s和t相等则返回0；若s>t则返回正数；若s<t则返回负数
 */
int compare_string(SString* s, SString* t);
/**
 * 连接两个字符串
 * 将t字符串连接到s字符串
 */
int concat_string(SString* s, SString* t);
/**
 * 获取子串
 * 获取串s中下标pos起的len个字符
 */
int sub_string(SString* s, SString* sub, int pos, int len);
/**
 * 简单模式匹配
 * 从主串s的下标pos起，返回模式串t第一次出现的位置。
 * 成功返回位置号，不成功返回-1
 */
int index_string(SString* s, int pos, SString* pattern);

void print_string(SString* s);

#endif /* STRING_H_ */
